(Finternal_set_lisp_face_attribute): If FRAME is `t', update
authorMiles Bader <miles@gnu.org>
Wed, 6 Dec 2000 01:12:43 +0000 (01:12 +0000)
committerMiles Bader <miles@gnu.org>
Wed, 6 Dec 2000 01:12:43 +0000 (01:12 +0000)
`default-frame-alist' instead of setting no frame parameters.

src/xfaces.c

index cad7c0725022cd91910f134ec98bcbe2e4ef8ba8..b6dfaed745b67c2cab9693e13cf00a9fa8659fa3 100644 (file)
@@ -4080,8 +4080,7 @@ FRAME 0 means change the face on all frames, and change the default\n\
 
 #ifdef HAVE_WINDOW_SYSTEM
 
-  if (!EQ (frame, Qt)
-      && !UNSPECIFIEDP (value)
+  if (!UNSPECIFIEDP (value)
       && NILP (Fequal (old_value, value)))
     {
       Lisp_Object param;
@@ -4136,13 +4135,20 @@ FRAME 0 means change the face on all frames, and change the default\n\
        ++menu_face_change_count;
 
       if (!NILP (param))
-       {
-         Lisp_Object cons;
-         cons = XCAR (Vparam_value_alist);
-         XCAR (cons) = param;
-         XCDR (cons) = value;
-         Fmodify_frame_parameters (frame, Vparam_value_alist);
-       }
+       if (EQ (frame, Qt))
+         /* Update `default-frame-alist', which is used for new frames.  */
+         {
+           store_in_alist (&Vdefault_frame_alist, param, value);
+         }
+       else
+         /* Update the current frame's parameters.  */
+         {
+           Lisp_Object cons;
+           cons = XCAR (Vparam_value_alist);
+           XCAR (cons) = param;
+           XCDR (cons) = value;
+           Fmodify_frame_parameters (frame, Vparam_value_alist);
+         }
     }
 
 #endif /* HAVE_WINDOW_SYSTEM */